home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 22 / AMIGAplus Sonderheft 22 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Vollversion / BankManager Version 1.6 / BankManager / COMMERZBANK.MPL < prev    next >
Text File  |  1999-11-08  |  16KB  |  961 lines

  1. '
  2. ' Bankkommunikationsskript für die Commerzbank.
  3. '
  4. ' Erste Erstellung: 30.10.1997
  5. ' Letzte Änderung : 05.03.1999
  6. ' Autor: Christian Kaben
  7. '
  8.  
  9. LISTFILE$ := "BankManager:LISTFILE.PBK"
  10. EINUEB$ := "BankManager:EINUEB"
  11. SAMUEB$ := "BankManager:SAMUEB"
  12. SAMLST$ := "BankManager:SAMLST"
  13. KSTAND$ := "BankManager:KTOSTAND.PBK"
  14. AUSZUG$ := "BankManager:AUSZUG.PBK"
  15. UEBEXTENSION$ := ".PBK"
  16.  
  17. 'Maximale Länge von Empfänger- und Textfeldern.
  18. MAX_EM_LEN:=27
  19. MAX_TX_LEN:=27
  20.  
  21. open #1,LISTFILE$,"r"
  22. 'Version
  23. INPUT$:=input$ #1
  24. 'Einzelüberweisung
  25. INPUT$:=input$ #1
  26. EINZUEB := val(INPUT$)
  27. 'überweisung
  28. INPUT$:=input$ #1
  29. 'überweisung
  30. INPUT$:=input$ #1
  31. 'überweisung
  32. INPUT$:=input$ #1
  33. 'überweisung
  34. INPUT$:=input$ #1
  35. 'Sammelüberweisung
  36. INPUT$:=input$ #1
  37. SAMMUEB := val(INPUT$)
  38. 'Sammellastschrift
  39. INPUT$:=input$ #1
  40. SAMMLAS := val(INPUT$)
  41. 'Kontoauszüge holen?
  42. INPUT$:=input$ #1
  43. AUSZUG := val(INPUT$)
  44. 'Datum letzter Kontoauszug
  45. INPUT$:=input$ #1
  46. LAUSZUG$ := INPUT$
  47. 'Kontostand abfragen?
  48. INPUT$:=input$ #1
  49. STAND := val(INPUT$)
  50. 'PIN
  51. INPUT$:=input$ #1
  52. PIN$ := INPUT$
  53. 'Startseite
  54. INPUT$:=input$ #1
  55. STARTSEITE$ := INPUT$
  56. 'Kontonummer
  57. INPUT$:=input$ #1
  58. KONTONR$ := INPUT$
  59.  
  60. close #1
  61.  
  62.  
  63.  
  64. if(STARTSEITE$ <> "")
  65. '        Erst einmal auf die Nullseite springen. Damit
  66. '        verlasse ich ggf. auch einen ER (normalerweise).
  67.     send(ini$+"0"+ter$)
  68.     wait(1,0,0,30000)
  69. '        Bankrechner aufrufen.
  70.     send(ini$+STARTSEITE$+ter$)
  71.     wait(1,0,0,30000)
  72.     send(ter$)
  73.     wait(1,0,0,30000)
  74.     send(KONTONR$)
  75. '    if(len(KONTONR$) < 10)
  76. '        send(ter$)
  77. '    endif
  78.     wait(1,0,0,30000)
  79.     send(PIN$)
  80.     wait(1,0,0,30000)
  81.     send("19")
  82.     wait(1,0,0,30000)
  83. '        Prüfen, ob Verbindung hergestellt.
  84.     LINE$ := line$(24)
  85.     if(left$(LINE$,1) <> " ")
  86.         end
  87.     endif
  88. endif
  89.  
  90. if(STAND > 0)
  91.     gosub KTOSTAND:
  92. endif
  93. MAXUEB := EINZUEB
  94. if(MAXUEB > 0)
  95.     gosub EINZUEB:
  96. endif
  97. MAXUEB := SAMMUEB
  98. if(MAXUEB > 0)
  99.     gosub SAMMUEB:
  100. endif
  101. MAXUEB := SAMMLAS
  102. if(MAXUEB > 0)
  103.     gosub SAMMLAS:
  104. endif
  105. if(AUSZUG > 0)
  106.     gosub UMSAETZE:
  107. endif
  108.  
  109.  
  110. ENDE:
  111. end
  112.  
  113.  
  114.  
  115.  
  116. '
  117. ' K O N T O S T A N D
  118. '
  119.  
  120. KTOSTAND:
  121. ' Kontostandmaske aufrufen.
  122. 'send("2")
  123. 'wait(1,0,0,30000)
  124. 'send(ter$)
  125. 'wait(1,0,0,30000)
  126. DATUM$ := ""
  127. ZEIT$ := ""
  128. STAND$ := ""
  129.  
  130. ' Datum auslesen
  131. LINE$ := line$(20)
  132. while(left$(LINE$,1) <> " ")
  133.     LINE$ := mid$(LINE$,2,40)
  134. wend
  135. if(len(LINE$) = 0)
  136.     return
  137. endif
  138. while(left$(LINE$,1) = " ")
  139.     LINE$ := mid$(LINE$,2,40)
  140. wend
  141. if(len(LINE$) = 0)
  142.     return
  143. endif
  144. while(left$(LINE$,1) <> " ")
  145.     DATUM$ := DATUM$ + left$(LINE$,1)
  146.     LINE$ := mid$(LINE$,2,40)
  147. wend
  148. if(len(LINE$) = 0)
  149.     return
  150. endif
  151.  
  152. ' Zeit auslesen
  153. while(left$(LINE$,1) = " ")
  154.     LINE$ := mid$(LINE$,2,40)
  155. wend
  156. if(len(LINE$) = 0)
  157.     return
  158. endif
  159. while(left$(LINE$,1) <> " ")
  160.     LINE$ := mid$(LINE$,2,40)
  161. wend
  162. if(len(LINE$) = 0)
  163.     return
  164. endif
  165. while(left$(LINE$,1) = " ")
  166.     LINE$ := mid$(LINE$,2,40)
  167. wend
  168. if(len(LINE$) = 0)
  169.     return
  170. endif
  171. while(left$(LINE$,1) <> " ")
  172.     ZEIT$ := ZEIT$ + left$(LINE$,1)
  173.     LINE$ := mid$(LINE$,2,40)
  174. wend
  175.  
  176. ' Kontostand auslesen
  177. LINE$ := line$(17)
  178. LINE$ := mid$(LINE$,20,99)
  179. while(left$(LINE$,1) = " ")
  180.     LINE$ := mid$(LINE$,2,40)
  181. wend
  182. if(len(LINE$) = 0)
  183.     return
  184. endif
  185. while(len(LINE$) > 1)
  186.     STAND$ := STAND$ + left$(LINE$,1)
  187.     LINE$ := mid$(LINE$,2,40)
  188. wend
  189. open #1,KSTAND$,"w"
  190. print #1,DATUM$
  191. print #1,ZEIT$
  192. print #1,STAND$
  193. close #1
  194. send("9")
  195. wait(1,0,0,30000)
  196. send("9")
  197. wait(1,0,0,30000)
  198. return
  199.  
  200.  
  201.  
  202.  
  203.  
  204. '
  205. ' E I N Z E L Ü B E R W E I S U N G E N
  206. '
  207.  
  208. EINZUEB:
  209.  
  210. ' Test, ob nicht schon alle versandt worden sind.
  211. COUNTMAX := MAXUEB
  212. COUNTNAME$ := EINUEB$
  213. gosub COUNTOPEN:
  214. if(COUNTMAX = 0)
  215.     return
  216. endif
  217.  
  218. ' Überweisungseingabemaske aufrufen.
  219. send("3")
  220. wait(1,0,0,30000)
  221. send("1")
  222. wait(1,0,0,30000)
  223.  
  224. TAN$ := ""
  225. UNTERSCHRIFT$ := ""
  226. BASELINE := 8
  227.  
  228. ' Ab hier Einspielen der Datensätze.
  229. for i:=1 to MAXUEB
  230. '        TAN als leer initialisieren, da jeder Auftrag ja seine
  231. '        eigene TAN hat (im Gegensatz zu den Sammlern).
  232.     TAN$ := ""
  233.     UNTERSCHRIFT$ := ""
  234.     GLOBALERROR := 0
  235.     FILENAME$ := EINUEB$+str$(i-1)+UEBEXTENSION$
  236. '        Einspielen des aktuellen Datensatzes.
  237.     gosub SENDENTRY:
  238. 'split(10)
  239. 'print GLOBALERROR
  240. 'sleep(5000)
  241. 'split(0)
  242.     if(GLOBALERROR = -1)
  243. 'split(10)
  244. 'print "NEXT erkannt"
  245. 'sleep(3000)
  246. 'split(0)
  247. goto LABEL11:
  248.         next
  249.     endif
  250.  
  251.     send(ter$)
  252.     wait(1,0,0,30000)
  253.     send("19")
  254.     wait(1,0,0,30000)
  255.  
  256. LABEL11:
  257.  
  258. '        Vergleich des aktuellen Datensatzes mit der Anzeige seitens Btx.
  259.     GLOBALERROR := 0
  260.     FILENAME$ := EINUEB$+str$(i-1)+UEBEXTENSION$
  261. 'split(5)
  262. 'print "1"
  263. 'sleep(1000)
  264. 'split(0)
  265. loop11:
  266.     gosub CHECK:
  267.     if(GLOBALERROR=-1)
  268. goto LABEL12:
  269.         next
  270.     endif
  271.  
  272. 'split(5)
  273. 'print "2"
  274. 'sleep(1000)
  275. 'split(0)
  276.     if(GLOBALERROR <> 0)
  277. '            Anzeige weicht vom Eingespielten ab. Also erneut einspielen.
  278.         send("1")
  279.         wait(1,0,0,30000)
  280.         gosub SENDENTRY:
  281.         if(GLOBALERROR=-1)
  282. goto LABEL12:
  283.             next
  284.         endif
  285.         goto loop11:
  286.     endif
  287. 'split(5)
  288. 'print "3"
  289. 'sleep(1000)
  290. 'split(0)
  291.  
  292.     send(ter$)
  293.     wait(1,0,0,30000)
  294.  
  295.     if(TAN$ = "")
  296.         split(5)
  297.         print "Keine TAN vorhanden !!! Bitte jetzt eingeben:"
  298.         TAN$ := input$
  299. '        sleep(10000)
  300.         split(0)
  301. '        goto ENDE:
  302.     endif
  303.     send(TAN$)
  304.     wait(1,0,0,30000)
  305.     if(UNTERSCHRIFT$ = "")
  306.         split(5)
  307.         print "Keine Unterschrift vorhanden !!! Bitte jetzt eingeben:"
  308.         UNTERSCHRIFT$ := input$
  309. '        sleep(10000)
  310.         split(0)
  311. '        goto ENDE:
  312.     endif
  313.     send(UNTERSCHRIFT$)
  314.     wait(1,0,0,30000)
  315.     send(ter$)
  316.     wait(1,0,0,30000)
  317.     send("19")
  318.     wait(1,0,0,30000)
  319.  
  320. '        Erfolgreich eingespielten Datensatz als erledigt markieren.
  321.     gosub DELETEENTRY:
  322.  
  323.     if(i < MAXUEB)
  324. '            Es kommen noch mehr Überweisungen.
  325.         send(ter$)
  326.     else
  327.         send("9")
  328.         wait(1,0,0,30000)
  329.         send("9")
  330.     endif
  331.     wait(1,0,0,30000)
  332. LABEL12:
  333. next
  334.  
  335. return
  336.  
  337.  
  338.  
  339.  
  340.  
  341. '
  342. ' S A M M E L Ü B E R W E I S U N G E N
  343. '
  344.  
  345. SAMMUEB:
  346.  
  347. ' Test, ob nicht schon alle versandt worden sind.
  348. COUNTMAX := 1
  349. COUNTNAME$ := SAMUEB$
  350. gosub COUNTOPEN:
  351. if(COUNTMAX = 0)
  352.     return
  353. endif
  354.  
  355. send("30")
  356. wait(1,0,0,30000)
  357. send(ter$)
  358. send("1")
  359. wait(1,0,0,30000)
  360. if(errno<>0)
  361.     wait(1,0,0,30000)
  362. endif
  363. LINE$ := line$(7)
  364. LSTNR$ := mid$(LINE$,15,6)
  365. 'split(10)
  366. 'print LSTNR$
  367. 'sleep(2000)
  368. 'split(0)
  369. TAN$ := ""
  370. UNTERSCHRIFT$ := ""
  371. BASELINE := 10
  372.  
  373. ' Ab hier Einspielen der Datensätze.
  374. for i:=1 to MAXUEB
  375.     GLOBALERROR := 0
  376.     FILENAME$ := SAMUEB$+str$(i-1)+UEBEXTENSION$
  377.  
  378.     gosub SENDENTRY:
  379. 'split(10)
  380. 'print GLOBALERROR
  381. 'sleep(5000)
  382. 'split(0)
  383.     if(GLOBALERROR=-1)
  384. 'split(10)
  385. 'print "NEXT erkannt"
  386. 'sleep(3000)
  387. 'split(0)
  388. goto LABEL21:
  389.         next
  390.     endif
  391.  
  392.     if(i < MAXUEB)
  393. '            Es folgen noch weitere Überweisungen.
  394.         send(ter$)
  395.     else
  396. '            Es folgen keine weitere Überweisungen.
  397.         send("9")
  398.     endif
  399.     wait(1,0,0,30000)
  400. LABEL21:
  401. next
  402. send(ter$)
  403. wait(1,0,0,30000)
  404. send(LSTNR$)
  405. send("3")
  406. wait(1,0,0,30000)
  407.  
  408. ' Ab hier Vergleich der Datensätze mit der Anzeige seitens Btx.
  409. for i:=1 to MAXUEB
  410.     GLOBALERROR := 0
  411.     FILENAME$ := SAMUEB$+str$(i-1)+UEBEXTENSION$
  412. 'split(5)
  413. 'print "1"
  414. 'sleep(1000)
  415. 'split(0)
  416. loop21:
  417.     gosub CHECK:
  418.     if(GLOBALERROR=-1)
  419. goto LABEL22:
  420.         next
  421.     endif
  422.  
  423. 'split(5)
  424. 'print "2"
  425. 'sleep(1000)
  426. 'split(0)
  427.     if(GLOBALERROR <> 0)
  428.         send("1")
  429.         wait(1,0,0,30000)
  430.         gosub SENDENTRY:
  431.         if(GLOBALERROR=-1)
  432. goto LABEL22:
  433.             next
  434.         endif
  435.         goto loop21:
  436.     endif
  437. 'split(5)
  438. 'print "3"
  439. 'sleep(1000)
  440. 'split(0)
  441.     send(ter$)
  442.     gosub DELETEENTRY:
  443.     wait(1,0,0,30000)
  444. LABEL22:
  445. next
  446. if(TAN$ = "")
  447.     split(5)
  448.     print "Keine TAN vorhanden !!!"
  449.     sleep(10000)
  450.     split(0)
  451.     end
  452. endif
  453. send(TAN$)
  454. wait(1,0,0,30000)
  455. send("2")
  456. wait(1,0,0,30000)
  457. send("0")
  458.  
  459. return
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. '
  467. ' S A M M E L L A S T S C H R I F T E N
  468. '
  469.  
  470. SAMMLAS:
  471.  
  472. ' Nicht implementiert.
  473.  
  474. return
  475.  
  476.  
  477.  
  478.  
  479.  
  480. '
  481. ' U M S Ä T Z E
  482. '
  483.  
  484. UMSAETZE:
  485. ' Umsatzmaske aufrufen.
  486. send("2")
  487. wait(1,0,0,30000)
  488. send(ter$)
  489. wait(1,0,0,30000)
  490. send("2")
  491. wait(1,0,0,30000)
  492. ' Datumsmaske aufrufen.
  493. send("3")
  494. wait(1,0,0,30000)
  495. 'split(10)
  496. if(LAUSZUG$ = "")
  497.     LAUSZUG$ := date$
  498. endif
  499. if(len(LAUSZUG$) < 6)
  500.     LAUSZUG$ := date$
  501. endif
  502. if(left$(LAUSZUG$,2) = "  ")
  503.     LAUSZUG$ := date$
  504. endif
  505. LINE$ := mid$(LAUSZUG$,1,2) + mid$(LAUSZUG$,4,2)
  506. send(LINE$)
  507. wait(1,0,0,30000)
  508. DATE$ := date$
  509. LINE$ := mid$(DATE$,1,2) + mid$(DATE$,4,2)
  510. send(LINE$)
  511. wait(1,0,0,30000)
  512.  
  513. send(ter$)
  514. wait(1,0,0,30000)
  515.  
  516. LINE$ := line$(13)
  517. VALUE := val(mid$(LINE$,10,4))
  518. if(VALUE <> 0)
  519.     send(ter$)
  520.     wait(1,0,0,30000)
  521.  
  522.     open #4,AUSZUG$,"a"
  523.     gosub LESEUMSATZ:
  524.     close #4
  525. else
  526.     LAUSZUG$ := date$
  527.     gosub RESETADATE:
  528. endif
  529.  
  530. 'split(0)
  531. send("9")
  532. wait(1,0,0,30000)
  533. send("9")
  534. wait(1,0,0,30000)
  535. return
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542. '
  543. ' B I B L I O T H E K
  544. ' ===================
  545. '
  546. ' ===================
  547. CHECKENTRY:
  548. STRIPBLANKS$ := MID$
  549. gosub STRIPBLANKS:
  550. gosub STRIPLEADS:
  551. if(INPUT$ <> STRIPBLANKS$)
  552.     sp